semver 在 Javascript 可以使用 new 關鍵字來產生物件
const s = new semver("1.5.0");
s.minor(); // 5
在 Reason 中可以使用 class type 來綁定
class type semverInstance =
[@bs]
{
  pub version: string;
  pub major: int;
  pub minor: int;
  pub patch: int;
  pub raw: string;
  pub build: array(string);
  pub prerelease: array(string)
};
type tSemver = Js.t(semverInstance);
完成了這一步先回想一下如何發布 NPM 的套件
將寫完的 Reason 檔案透過上面的步驟就可以推到 NPM 上面
  $ npm install bs-express express
bsconfig.json
"bs-dependencies": [
    "bs-express"
  ],
Demo.re
open Express;
let app = express();
let onListen = e =>
  switch (e) {
  | exception (Js.Exn.Error(e)) =>
    Js.log(e);
    Node.Process.exit(1);
  | _ => Js.log @@ "Listening at http://127.0.0.1:3000"
  };
  App.get(app, ~path="/") @@
Middleware.from((next, req,) => {
  Response.sendString("Hello world")
});
let server = App.listen(app, ~port=3000, ~onListen, ());
  $ node src/Demo.bs.js
你就可以看到 Hello World!
終於串起 Reason 和 NPM 的部分
接下來是怎麼處理 使用 Reason 讓 Javascript 使用呢?